import { fileURLToPath, URL } from 'node:url'
import transformerDirective from '@unocss/transformer-directives'
import UnoCSS from 'unocss/vite'

import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
// https://vite.dev/config/
export default defineConfig(({ mode }) => {
  const { VITE_BASE_ADDON_NAME } = loadEnv(mode, process.cwd())

  // 在 Vite 中，开发环境 mode 为 'development'，生产环境 mode 为 'production'
  const isDev = mode === 'development'
  return {
    base: isDev ? './' : `/assets/addons/${VITE_BASE_ADDON_NAME}/`,
    plugins: [
      vue(),
      vueDevTools(),
      UnoCSS({
        transformers: [transformerDirective()]
      })
    ],
    build: {
      rollupOptions: {
        output: {
          entryFileNames: 'assets/dk-entry.js', // JS文件名格式
          chunkFileNames: 'assets/dk-chunk.js', // 按需加载的chunk（模块）文件名格式
          assetFileNames: 'assets/dk-asset.[ext]', // 非JS和CSS资源文件名格式
          // 如果你希望为CSS文件单独设置输出格式：
          // （默认情况下，CSS是内联到JavaScript中的，或者作为独立文件输出）
          cssOutput: {
            entryFileNames: 'styles/dk-entry.css',
            chunkFileNames: 'styles/dk-chunk.css'
          }
        }
      }
    },
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url)),
        vue: 'vue/dist/vue.esm-bundler.js'
      }
    }
  }
})
